]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screencastService: Add gstreamer pipeline for h264 low-power hw encode
authorJosé Relvas <josemonsantorelvas@gmail.com>
Thu, 11 Jul 2024 19:31:11 +0000 (20:31 +0100)
committerMarge Bot <marge-bot@gnome.org>
Thu, 25 Jul 2024 01:45:06 +0000 (01:45 +0000)
VA-API low-power encoder profiles (such as vah264lpenc) reduce power consumption by relying entirely on fixed-function hardware blocks.
Use vah264lpenc over vah264enc by default, in order to save on energy and 3D engine capacity.

Signed-off-by: José Relvas <josemonsantorelvas@gmail.com>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3416>

js/dbusServices/screencast/screencastService.js

index c01aa830fc0d354f7250964179c95e07ea5f3337..e82eae3993bd2323663caf5b1d072ff453a10c1b 100644 (file)
@@ -31,6 +31,17 @@ const DEFAULT_DRAW_CURSOR = true;
 const PIPELINE_BLOCKLIST_FILENAME = 'gnome-shell-screencast-pipeline-blocklist';
 
 const PIPELINES = [
+    {
+        id: 'hwenc-dmabuf-h264-vaapi-lp',
+        fileExtension: 'mp4',
+        pipelineString:
+            'capsfilter caps=video/x-raw(memory:DMABuf),format=DMA_DRM,max-framerate=%F/1 ! \
+             vapostproc ! \
+             vah264lpenc ! \
+             queue ! \
+             h264parse ! \
+             mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise',
+    },
     {
         id: 'hwenc-dmabuf-h264-vaapi',
         fileExtension: 'mp4',